package com.xzmzhp.dao.finance.SQL;

import com.xzmzhp.utils.StringUtils;
import org.apache.ibatis.jdbc.SQL;

import java.util.Map;

/**
 * @author: 王源(xm)
 * @create: 2022-03-26 18:37
 * @program: ams
 * @description: 财务信息相关sql
 */
public class FinanceSql {

    /**
     * 根据条件查询财务信息
     * @param params 参数
     *        cashFlow  收支类型
     *        financesTypeId 收支项目id
     *        financesPass 是否通过
     *        personnelName  收支人员姓名
     *        startTime 起始时间
     *        endTime 结束时间
     * @return 相应财务信息sql
     */
    public String findFinanceVoByParam(Map<String,Object> params){
        return new SQL(){
            {
                SELECT("finance.finance_id,finance.finances_date,finance.finance_amounts,finance.cash_flow,finances.finances_type_id,finances_type.finances_type_name" +
                        "finance.finance_pass,finance.finances_personnel_id,personnel.personnel_name,personnel.personnel_phone");
                FROM("finances,finances_type,personnel");
                if (StringUtils.isNotNull(params.get("cashFlow"))){
                    WHERE("finances.cash_flow ='"+params.get("cashFlow")+"'");
                }
                if (StringUtils.isNotNull(Integer.parseInt(params.get("financesTypeId").toString()))){
                    WHERE("finances.finances_type_id ="+params.get("financesTypeId"));
                }
                if (StringUtils.isNotNull(params.get("financesPass"))){
                    WHERE("finances.finances_pass ='"+params.get("financesPass")+"'");
                }
                if (StringUtils.isNotNull(params.get("personnelName"))){
                    WHERE("personnel.personnel_name ='%"+params.get("personnelName")+"%'");
                }
                if (StringUtils.isNotNull(params.get("startTime"))){
                    WHERE("finances.finances_date >='"+params.get("startTime")+"'");
                }
                if (StringUtils.isNotNull(params.get("endTime"))){
                    WHERE("finances.finances_date >='"+params.get("endTime")+"'");
                }
                ORDER_BY("finances.finances_date");

            }
        }.toString();
    }
}
